@page
@using LLama.Common;
@model LLama.Abstractions.IInferenceParams

<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>MaxTokens</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.MaxTokens, new { @type = "range", @class = "slider", min = "-1", max = "2048", step = "1" })
            <label>0</label>
        </div>
    </div>

    <div class="d-flex flex-column mb-2">
        <small>TokensKeep</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.TokensKeep, new { @type = "range", @class = "slider", min = "0", max = "2048", step = "1" })
            <label>0</label>
        </div>
    </div>
</div>

@* todo: update for new sampling system
<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>TopK</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.TopK, new { @type = "range", @class = "slider", min = "-1", max = "100", step = "1" })
            <label>0</label>
        </div>
    </div>

    <div class="d-flex flex-column mb-2">
        <small>TopP</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.TopP, new { @type = "range", @class = "slider", min = "0.0", max = "1.0", step = "0.01" })
            <label>0</label>
        </div>
    </div>
</div>

<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>TypicalP</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.TypicalP, new { @type = "range", @class = "slider", min = "0.0", max = "1.0", step = "0.01" })
            <label>0</label>
        </div>
    </div>

    <div class="d-flex flex-column mb-2">
        <small>Temperature</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.Temperature, new { @type = "range", @class = "slider", min = "0.0", max = "1.5", step = "0.01" })
            <label>0</label>
        </div>
    </div>
</div>

<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>RepeatPenalty</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.RepeatPenalty, new { @type = "range", @class = "slider", min = "0.0", max = "2.0", step = "0.01" })
            <label>0</label>
        </div>
    </div>

    <div class="d-flex flex-column mb-2">
        <small>RepeatLastTokensCount</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.RepeatLastTokensCount, new { @type = "range", @class = "slider", min = "0", max = "2048", step = "1" })
            <label>0</label>
        </div>
    </div>
</div>

<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>FrequencyPenalty</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.FrequencyPenalty, new { @type = "range", @class = "slider", min = "0.0", max = "1.0", step = "0.01" })
            <label>0</label>
        </div>
    </div>

    <div class="d-flex flex-column mb-2">
        <small>PresencePenalty</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.PresencePenalty, new { @type = "range", @class = "slider", min = "0.0", max = "1.0", step = "0.01" })
            <label>0</label>
        </div>
    </div>
</div>

<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>TfsZ</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.TfsZ, new { @type = "range", @class = "slider", min = "0.0", max = "1.0", step = "0.01" })
            <label>0</label>
        </div>
    </div>
    <div class="d-flex flex-column mb-2">
        <small>-</small>
        <div class="d-flex flex-row slider-container">
            <input class="slider" type="range" value="0" disabled />
            <label></label>
        </div>
    </div>
</div>


<div class="d-flex flex-column mb-2">
    <div class="form-floating">
        @Html.DropDownListFor(m => m.Mirostat, Html.GetEnumSelectList<MirostatType>(), new { @class = "form-control form-select" })
        @Html.LabelFor(m => m.Mirostat)
    </div>
</div>

<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>MirostatTau</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.MirostatTau, new { @type = "range", @class = "slider", min = "0.0", max = "10.0", step = "0.01" })
            <label>0</label>
        </div>
    </div>

    <div class="d-flex flex-column mb-2">
        <small>MirostatEta</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.MirostatEta, new { @type = "range", @class = "slider", min = "0.0", max = "1.0", step = "0.01" })
            <label>0.0</label>
        </div>
    </div>
</div>

*@